/*
* TFInterfaceFactory.h
*
* This static class is used to create all the interfaces
* for the MVC+AI+RuleChecker
*
* All interfaces should be deleted by the calling class.
* 
* Author: Rapid Dojo
* Date: Oct 19, 2007
*/

#include "TFConstants.h"
#include "TFControllerInterface.h"
#include "TFModelInterface.h"
#include "TFViewInterface.h"
#include "TFAIInterface.h"
#include "TFRuleCheckerInterface.h"

class TFInterfaceFactory
{
public:

	static HRESULT CreateTFController(TFControllerInterface *& oControllerInterface);

	static HRESULT CreateTFView(TFViewInterface *& oViewInterface);

	static HRESULT CreateTFModel(TFModelInterface *& oModelInterface);

	static HRESULT CreateTFAI(TFAIInterface *& oAIInterface);

	static HRESULT CreateTFRuleChecker(TFRuleCheckerInterface *& oRuleCheckerInterface);

};
